home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Attitude 10
/
Attitude_10_2010-02-17_Oxyron.d64
/
vector .src
< prev
Wrap
Text File
|
2023-02-26
|
6KB
|
403 lines
;Hidden precalced vector.
p1x = $40
p1y = $41
p2x = $42
p2y = $43
p3x = $44
p3y = $45
p4x = $46
p4y = $47
p5x = $48
p5y = $49
p6x = $4a
p6y = $4b
p7x = $4c
p7y = $4d
p8x = $4e
p8y = $4f
v1x = $50
v1y = $51
v2x = $52
v2y = $53
t1 = $54
n1 = $55
t2 = $56
n2 = $57
tmp = $58
sign = $59
*= $0a00
sei
lda #$80
ldx #7
sta $07f8,x
dex
bpl *-4
loop
lda #$ff
cmp $d012
bne *-3
jsr calcvect
jsr hideface
jsr putspt
jmp loop
calcvect
ldx #0
inc *-1
lda $5000,x
sta p1x
lda $5100,x
sta p1y
lda $5200,x
sta p2x
lda $5300,x
sta p2y
lda $5400,x
sta p3x
lda $5500,x
sta p3y
lda $5600,x
sta p4x
lda $5700,x
sta p4y
lda $5800,x
sta p5x
lda $5900,x
sta p5y
lda $5a00,x
sta p6x
lda $5b00,x
sta p6y
lda $5c00,x
sta p7x
lda $5d00,x
sta p7y
lda $5e00,x
sta p8x
lda $5f00,x
sta p8y
rts
putspt
ldx #7
lda #2
asl spt{CBM-@}mask
bcc *+4
lda #1
sta $d027,x
dex
bpl *-13
lda #$ff
sta $d015
ldx #15
lda p1x,x
eor #$80
sta $d000,x
dex
bpl *-8
rts
spt{CBM-@}mask .byte 0
hideface
lda #%00000000
sta spt{CBM-@}mask
ldx #p3x-p1x
ldy #p2x-p1x
lda #p1x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%00001111
sta spt{CBM-@}mask
ldx #p8x-p1x
ldy #p3x-p1x
lda #p1x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%10100101
sta spt{CBM-@}mask
ldx #p2x-p1x
ldy #p8x-p1x
lda #p1x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%11000011
sta spt{CBM-@}mask
ldx #p6x-p1x
ldy #p7x-p1x
lda #p5x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%11110000
sta spt{CBM-@}mask
ldx #p4x-p1x
ldy #p6x-p1x
lda #p5x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%00111100
sta spt{CBM-@}mask
ldx #p7x-p1x
ldy #p4x-p1x
lda #p5x-p1x
jsr hide
lda spt{CBM-@}mask
bcs *+4
ora #%01011010
sta spt{CBM-@}mask
rts
hide
pha
lda p1x,x
sta v1x
lda p1y,x
sta v1y
tya
tax
lda p1x,x
sta v2x
lda p1y,x
sta v2y
pla
tax
sec
lda v1x
sbc p1x,x
sta v1x
sec
lda v1y
sbc p1y,x
sta v1y
sec
lda v2x
sbc p1x,x
sta v2x
sec
lda v2y
sbc p1y,x
sta v2y
clc
ldx #0
ldy #0
lda v1x
bne *+3
iny
bpl *+9
inx
eor #$ff
adc #1
sta v1x
lda v2y
bne *+3
iny
bpl *+9
inx
eor #$ff
adc #1
sta v2y
txa
and #1
sta tmp
ldx #0
lda v1y
bne *+3
iny
bpl *+9
inx
eor #$ff
adc #1
sta v1y
lda v2x
bne *+3
iny
bpl *+9
inx
eor #$ff
adc #1
sta v2x
cpy #0
bne h0
txa
and #1
cmp tmp
beq h1
cmp #1
bne *+4
clc
rts
sec
rts
h0
cpy #2
bcc h0{CBM-@}1
beq h0{CBM-@}2
sec
rts
h0{CBM-@}1
lda v1x
beq h0{CBM-@}11
lda v2y
beq h0{CBM-@}11
lda tmp
bne *+4
clc
rts
sec
rts
h0{CBM-@}11
txa
and #1
beq *+4
clc
rts
sec
rts
h0{CBM-@}2
lda v1y
ora v2x
beq h0{CBM-@}21
lda v1x
ora v2y
beq h0{CBM-@}22
sec
rts
h0{CBM-@}21
lda tmp
bne *+4
clc
rts
sec
rts
h0{CBM-@}22
txa
and #1
beq *+4
clc
rts
sec
rts
h1
sta sign
ldx #0
ldy v1y
lda v1x
cmp v1y
bcs *+8
sta t1
sty n1
bcc *+7
sta n1
sty t1
inx
stx tmp
ldx #0
ldy v2y
lda v2x
cmp v2y
bcs *+8
sta t2
sty n2
bcc *+7
sta n2
sty t2
inx
txa
cmp tmp
beq h2
eor sign
cmp #0
bne *+4
clc
rts
sec
rts
h2
eor sign
sta sign
ldx #0
ldy #6
h2{CBM-@}1
lda t1
asl a
cmp n1
bcc *+5
sbc n1
inx
sta t1
lda t2
asl a
cmp n2
bcc *+5
sbc n2
dex
sta t2
cpx #0
bne h2{CBM-@}2
dey
bpl h2{CBM-@}1
sec
rts
h2{CBM-@}2
bpl *+3
inx
txa
eor sign
cmp #1
bne *+4
clc
rts
sec
rts
*= $2000
.byte $60,$00,$00,$f0,$00,$00
.byte $f0,$00,$00,$60,$00,$00
rts
h2{CBM-@}2
bpl *+3
inx
txa
eor sign
cmp #1
bne *+4
clc
rts
sec
rts
*= $2000
.byte $60,$